use crate::model::satori::*;

#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct Event {
    id: i64, // 事件 ID
    r#type: String, // 事件类型
    platform: String, // 接收者的平台名称
    self_id: String, // 接收者的平台账号
    timestamp: i64, // 事件的时间戳
    argv: Option<SatoriArgv>, // 交互指令
    button: Option<SatoriButton>, // 交互按钮
    channel: Option<SatoriChannel>, // 事件所属的频道
    guild: Option<SatoriGuild>, // 事件所属的群组
    login: Option<SatoriLogin>, // 事件的登录信息
    member: Option<SatoriGuildMember>, // 事件的目标成员
    message: Option<SatoriMessage>, // 事件的消息
    operator: Option<SatoriUser>, // 事件的操作者
    role: Option<SatoriGuildRole>, // 事件的目标角色
    user: Option<SatoriUser>, // 事件的目标用户
}